package com.bjpowernode.service;

import com.bjpowernode.service.impl.HelloServiceImpl;
import com.bjpowernode.service.impl.HelloServiceImpl2;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class TestApp {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
//        HelloService service = new HelloServiceImpl();
//        service.sayHello("张三");
        /**
         * 通过反射执行sayHello方法
         */
        HelloService target = new HelloServiceImpl();
//        获取sayHello名称对于应的Method类对象
     Method method= HelloService.class.getMethod("sayHello", String.class);
//   通过method可以执行sayHello方法调用
        /**
         * invoke是method类中的一个方法，表示执行方法的调用
         * 参数：
         * 1.Object     表示对象的，表示执行方法的调用
         * 2.Object...args，     方法执行时的参数值
         * 返回值：Object：方法执行后的返回值
         */
//        表达的意思，执行target对象的sayHello，参数是李四
        HelloService service2 = new HelloServiceImpl2();
        Object ret = method.invoke(service2,"李四");
        String s = "33";
    }
}
